package park.model.party;

import java.io.Serializable;
import java.sql.Date;

import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.EqualsBuilder;
/**
 * @archetype party-place-thing
 * @author gilberto
 * @since 08/04/2009
 */
public class PessoaFisica extends Pessoa implements Serializable {
	private static final long serialVersionUID = 1L;
	private Date dtNascimento;
	private String rg;
	private String cpf;
	
	public PessoaFisica(){};
	public PessoaFisica(Integer cdPessoa, String nome, String tipo, String endereco, Date dtNascimento, String rg, String cpf) {
		super(cdPessoa, nome, tipo, endereco);
		this.dtNascimento = dtNascimento;
		this.rg = rg;
		this.cpf = cpf;
	}
	public Date getDtNascimento() {return dtNascimento;}
	public void setDtNascimento(Date dtNascimento) {this.dtNascimento = dtNascimento;	}
	public String getRg() {return rg;}
	public void setRg(String rg) {this.rg = rg;}
	public String getCpf() {return cpf;}
	public void setCpf(String cpf) {this.cpf = cpf;	}
	
	
	public boolean equals(final Object other) {
		if (this == other)
			return true;
		if (!(other instanceof PessoaFisica))
			return false;
		PessoaFisica castOther = (PessoaFisica) other;
		return new EqualsBuilder()
					.append(dtNascimento, castOther.dtNascimento)
					.append(rg, castOther.rg)
					.append(cpf, castOther.cpf).isEquals();
	}
	public int hashCode() {
		return new HashCodeBuilder()
					.append(dtNascimento)
					.append(rg)
					.append(cpf).toHashCode();
	}
	public String toString() {
		return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
				.appendSuper(super.toString())
				.append("dtNascimento", dtNascimento)
				.append("rg", rg)
				.append("cpf", cpf).toString();
	}

	
}
